package com.cuixichang.minimalism.domain;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cuixichang.minimalism.core.security.userdetails.CredentialDetail;
import com.cuixichang.minimalism.transfer.dto.IMenuDTO;
import com.cuixichang.minimalism.transfer.po.IMenu;

import java.util.List;

public interface IMenuCommandService {
    IMenuDTO selectByIdHasPreCheck(Long id, String systemCode, CredentialDetail credentialDetail);
    boolean deleteById(Long id, String systemCode, CredentialDetail credentialDetail);
    boolean updateById(IMenuDTO menuDTO, CredentialDetail credentialDetail);
    Page<IMenuDTO> searchPageByConditional(IMenuDTO menuDTO, Long pageNo, Long pageSize, CredentialDetail credentialDetail);
    Page<IMenuDTO> roleHasBindingMenus(IMenuDTO menuDTO, Long pageNo, Long pageSize, Long roleId, CredentialDetail credentialDetail);
    Page<IMenuDTO> roleUnBindingMenus(IMenuDTO menuDTO, Long pageNo, Long pageSize, Long roleId, CredentialDetail credentialDetail);
    List<String> getMenuSignboard(String systemCode, CredentialDetail credentialDetail);
    List<IMenuDTO> searchTreeMenus(String systemCode,String signboard, CredentialDetail credentialDetail);
    List<IMenuDTO> searchOvertTreeMenus(String systemCode,String signboard);
}
